#include <signal.h>
#include <unistd.h>
#include <iostream>
using namespace std;
void handler(int sig)
{
    cout << "获取到一个信号，信号的编号是： " << sig << endl;
    sigset_t pending;
    while (true)
    {
        cout << "————————" << endl;
        sigpending(&pending);
        for (int i = 1; i <= 31; i++)
        {
            if (sigismember(&pending, i))
            {
                cout << '1';
            }
            else
            {
                cout << '0';
            }
        }
        cout<<endl;
        sleep(1);
    }
}
int main()
{
    // sigset_t pending;
    // while (true)
    // {
    //     sigpending(&pending);
    //     for (int i = 1; i <= 31; i++)
    //     {
    //         if (sigismember(&pending, i))
    //         {
    //             cout << '1';
    //         }
    //         else
    //         {
    //             cout << '0';
    //         }
    //     }
    //     cout<<endl;
    //     sleep(1);
    // }
    struct sigaction act, oact;
    act.sa_flags = 0;
    act.sa_handler = handler;
    sigemptyset(&act.sa_mask);
    sigaddset(&act.sa_mask, 3);
    sigaction(2, &act, &oact);
    

    while (1)
    {
        cout << "main running" << endl;
        sleep(1);
    }
    return 0;
}